1. Field of the Invention
The present invention generally relates to encoding systems. More specifically, the present invention provides the flexible encoding of control codes.
2. Background Art
Data transmission systems often use an embedded clock in a data stream to provide timing information. A transition rich data stream is required for quick and accurate clock recovery. Encoding schemes are used to produce a transition rich output data stream from a given input data stream.
The Institute of Electrical and Electronics Engineers (IEEE) 10 Gbps Ethernet standard specifies a 64-bit/66-bit (64B/66B) coding scheme in IEEE 802.3 Clause (CL) 49. The 64B/66B encoding scheme encodes eight 10 Gbit Media Independent Interface (XGMII) data octets (i.e., 64 bits) into a 66 bit block. The 66 bit block includes a two bit synchronization header and a 64 bit payload.
Generally, multiple XGMII lanes carry data characters and/or control characters (i.e., “K” codes). The 64B/66B encoder of CL 49 imposes restrictions on which lanes can carry certain K codes. Correspondingly, the payload generated by the 64B/66B encoder is similarly restricted. Restricting the positioning of K codes in the received XGMII data and the generated payload limits the capabilities of a data transmission system using such an encoder. Further, the 64B/66B encoder of CL 49 only scrambles the payload of an encoded block and not the synchronization header. As a result, the spectrum of a scrambled block generated by the 64B/66B encoder of CL 49 contains interfering energy spikes.